home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / saf / dom / AssociatedDocument.class (.txt) next >
Encoding:
Java Class File  |  2000-06-30  |  4.9 KB  |  178 lines

  1. package com.extensibility.saf.dom;
  2.  
  3. import com.extensibility.saf.SchemaAdjunct;
  4. import java.util.Hashtable;
  5. import org.w3c.dom.Attr;
  6. import org.w3c.dom.CDATASection;
  7. import org.w3c.dom.Comment;
  8. import org.w3c.dom.DOMException;
  9. import org.w3c.dom.DOMImplementation;
  10. import org.w3c.dom.Document;
  11. import org.w3c.dom.DocumentFragment;
  12. import org.w3c.dom.DocumentType;
  13. import org.w3c.dom.Element;
  14. import org.w3c.dom.EntityReference;
  15. import org.w3c.dom.Node;
  16. import org.w3c.dom.NodeList;
  17. import org.w3c.dom.ProcessingInstruction;
  18. import org.w3c.dom.Text;
  19.  
  20. public class AssociatedDocument extends AssociatedNode implements Document {
  21.    private SchemaAdjunct associations;
  22.    private Hashtable map = new Hashtable(100);
  23.  
  24.    public AssociatedDocument(SchemaAdjunct var1, Document var2) {
  25.       super(var2);
  26.       ((AssociatedObject)this).setAssociatedDocument(this);
  27.       this.associations = var1;
  28.    }
  29.  
  30.    protected SchemaAdjunct getDocSchemaAdjunct() {
  31.       return this.associations;
  32.    }
  33.  
  34.    protected AssociatedNode createAssociatedNode(Node var1) {
  35.       return new AssociatedNode(this, var1);
  36.    }
  37.  
  38.    AssociatedNode getAssociatedNode(Node var1) {
  39.       if (var1 instanceof AssociatedObject) {
  40.          throw new RuntimeException("need a source node here");
  41.       } else if (var1 instanceof Element) {
  42.          return this.getAssociatedElement((Element)var1);
  43.       } else {
  44.          synchronized(this){}
  45.  
  46.          AssociatedNode var2;
  47.          try {
  48.             var2 = (AssociatedNode)this.map.get(var1);
  49.             if (var2 == null) {
  50.                var2 = this.createAssociatedNode(var1);
  51.                this.map.put(var1, var2);
  52.             }
  53.          } finally {
  54.             ;
  55.          }
  56.  
  57.          return var2;
  58.       }
  59.    }
  60.  
  61.    protected AssociatedElement createAssociatedElement(Element var1) {
  62.       return new AssociatedElement(this, var1);
  63.    }
  64.  
  65.    synchronized AssociatedElement getAssociatedElement(Element var1) {
  66.       if (var1 instanceof AssociatedObject) {
  67.          throw new RuntimeException("need a source node here");
  68.       } else {
  69.          AssociatedElement var2 = (AssociatedElement)this.map.get(var1);
  70.          if (var2 == null) {
  71.             var2 = this.createAssociatedElement(var1);
  72.             this.map.put(var1, var2);
  73.          }
  74.  
  75.          return var2;
  76.       }
  77.    }
  78.  
  79.    protected AssociatedNamedNodeMap createAssociatedAttrMap(AssociatedElement var1) {
  80.       return new AssociatedNamedNodeMap(var1);
  81.    }
  82.  
  83.    synchronized AssociatedNamedNodeMap getAssociatedAttrMap(AssociatedElement var1) {
  84.       AssociatedNamedNodeMap var2 = (AssociatedNamedNodeMap)this.map.get(var1);
  85.       if (var2 == null) {
  86.          var2 = this.createAssociatedAttrMap(var1);
  87.          this.map.put(var1, var2);
  88.       }
  89.  
  90.       return var2;
  91.    }
  92.  
  93.    private Document getSourceDocument() {
  94.       return (Document)((AssociatedNode)this).getSourceNode();
  95.    }
  96.  
  97.    public boolean equals(Object var1) {
  98.       if (var1 instanceof AssociatedDocument) {
  99.          AssociatedDocument var2 = (AssociatedDocument)var1;
  100.          return this.getSourceDocument().equals(var2.getSourceDocument());
  101.       } else {
  102.          return false;
  103.       }
  104.    }
  105.  
  106.    public Document getOwnerDocument() {
  107.       return null;
  108.    }
  109.  
  110.    public DocumentType getDoctype() {
  111.       return this.getSourceDocument().getDoctype();
  112.    }
  113.  
  114.    public DOMImplementation getImplementation() {
  115.       return this.getSourceDocument().getImplementation();
  116.    }
  117.  
  118.    public Element getDocumentElement() {
  119.       return this.createAssociatedElement(this.getSourceDocument().getDocumentElement());
  120.    }
  121.  
  122.    public Element createElement(String var1) throws DOMException {
  123.       return this.getSourceDocument().createElement(var1);
  124.    }
  125.  
  126.    public DocumentFragment createDocumentFragment() {
  127.       return this.getSourceDocument().createDocumentFragment();
  128.    }
  129.  
  130.    public Text createTextNode(String var1) {
  131.       return this.getSourceDocument().createTextNode(var1);
  132.    }
  133.  
  134.    public Comment createComment(String var1) {
  135.       return this.getSourceDocument().createComment(var1);
  136.    }
  137.  
  138.    public CDATASection createCDATASection(String var1) throws DOMException {
  139.       return this.getSourceDocument().createCDATASection(var1);
  140.    }
  141.  
  142.    public ProcessingInstruction createProcessingInstruction(String var1, String var2) throws DOMException {
  143.       return this.getSourceDocument().createProcessingInstruction(var1, var2);
  144.    }
  145.  
  146.    public Attr createAttribute(String var1) throws DOMException {
  147.       return this.getSourceDocument().createAttribute(var1);
  148.    }
  149.  
  150.    public EntityReference createEntityReference(String var1) throws DOMException {
  151.       return this.getSourceDocument().createEntityReference(var1);
  152.    }
  153.  
  154.    public NodeList getElementsByTagName(String var1) {
  155.       return new AssociatedNodeList(((AssociatedObject)this).getAssociatedDocument(), this.getSourceDocument().getElementsByTagName(var1));
  156.    }
  157.  
  158.    public Element createElementNS(String var1, String var2) throws DOMException {
  159.       return null;
  160.    }
  161.  
  162.    public Element getElementById(String var1) {
  163.       return null;
  164.    }
  165.  
  166.    public NodeList getElementsByTagNameNS(String var1, String var2) {
  167.       return null;
  168.    }
  169.  
  170.    public Attr createAttributeNS(String var1, String var2) throws DOMException {
  171.       return null;
  172.    }
  173.  
  174.    public Node importNode(Node var1, boolean var2) throws DOMException {
  175.       return null;
  176.    }
  177. }
  178.